This invention relates to access control for computing systems.
Computer security, especially regarding access to sensitive data, is typically done by granting access rights to individual users. As a prerequisite, the user must provide some sort of proof of identity, typically through a password or a digital certificate, such as a Verisign™ X.509 certificate. Other ways to provide a proof of identity include using secure digital keys, various types of biometric identification, or different combinations of authentication methods.
An individual person typically has identity credentials associated with several different systems. In order to ease the process of authenticating to these different systems, the concepts of single sign-on (SSO) and federated identity have been introduced to allow a single set of identity credentials be used for authentication against several applications. At the current time, the SSO and federated identity take one of two schemes.
The first scheme, which is often referred to as the “desktop wallet” scheme, typically has two modes. In the first mode, all applications needing authentication are installed on the same computer and the user has stored authentication credentials into a local credential store on the computer. When the user signs in to a local SSO application on the computer, the authentication credentials are retrieved from the local credential store and are subsequently handed to each of the local applications, as needed. In the second mode of the “desktop wallet” scheme, the SSO application supports HTTP (Hyper Text Transfer Protocol) and HTML (Hyper Text Markup Language) form authentication. In this second mode, the applications are remote, but when the user's local browser encounters a web page needing credentials known to the desktop wallet, the SSO application fills in the required values. The browser then transfers the credentials to the remote application.
In the desktop wallet model, the user has full control of which credentials the SSO application can access and what operations the SSO application is allowed to conduct with the credentials. Examples of the desktop wallet scheme can be found in many shareware, freeware, or shrink-wrapped products supporting single sign-on. The desktop wallet model is sometimes also used in applications that contain single sign-on features, even though the applications themselves may not solely be single sign-on applications.
In the second scheme, which often is referred to as “federated identity,” no credentials are stored on the user's computer. Instead, different services or applications that are accessible over the Internet store the user's credentials. The different services or applications can have different sets of credentials for the same user. The applications participate in an identity federation, that is, the applications use a shared protocol that allows any one (or possibly many) of the user's credentials for an individual application or service to be used by other systems within the federated realm. The federated identity scheme thus allows a user to authenticate herself to one application or service, and then if the user would like to authenticate herself to a second service, the second service can automatically query the first service about whether the user's authentication was approved. If the user's authentication was approved by the first service, the second service can automatically approve the user without requiring a second authentication from the user. The user can also decide whether to exclude any services or applications from the federated identity network, for example, in the event that the user does not trust a particular service or application which is part of the federated identity network. Examples of the federated identity network authentication scheme can be found in concepts such as Microsoft's® Passport and in the protocols developed by the Liberty Alliance™ project.
Although the above solutions typically are sufficient in situations where the different applications are installed on the same machine, and where the applications collaborate in a federated identity network using a shared protocol, there are many situations in which a user needs to access applications on computers or systems that do not collaborate in a federated identity network. Such situations cannot be addressed with the above-mentioned solutions, and the user is thus forced to individually sign on to each application, possibly with different sets of user credentials for each application. This can be both time-consuming and challenging for the user to remember, in particular if the user has multiple credentials set up for different applications and services.
In view of the above, there is a need for providing a solution that enables a user to do a single authentication or sign-on to multiple applications or services that are not installed on the same computer and that do not belong to a common federated identity network. In particular, there is a need to enable various protocol bindings (including third party additions to the protocol binding set) and to maintain confidentiality of the individual user's credentials in such a dynamic environment.